动态内存常见的问题

对空指针的解引用

动态内存常见的问题_第1张图片
改正后的代码:
动态内存常见的问题_第2张图片

返回栈(临时变量)空间地址的问题

动态内存常见的问题_第3张图片

释放空间后及时把指针设为空

void Test(void)
{
	char* str = (char*)malloc(100);
	strcpy(str, "hello");
	free(str);
	str = NULL;//释放空间后及时把指针设为空
	if (str != NULL)
	{
		strcpy(str, "world");
		printf(str);
	}
}
int main()
{
	Test();
	return 0;
}

C\C++中程序内存区域划分
动态内存常见的问题_第4张图片

你可能感兴趣的:(c语言,数据结构)