=C语言=动态内存分配遇上函数-经典错误纠错
直接完整代码12345678910111213141516171819202122#include <stdio.h>#include <stdlib.h>#include <string.h>void GetMemory(char* p) //申请内存{ p = (char*)malloc(100); }void Test(){ char* str = NULL; GetMemory(str); strcpy(str, "hello world"); //复制字符串 printf(str); //输出字符串}int main(){ Test(); return 0;}
分析推测这段代码的的目的是通过GetMemory函数申请内存,然后把返回的地址存入指针变量str,再把字符串"hello world"复制到str所指向的内存中,最后printf输出
逐步纠错GetMemory
首先是传参错误。若在函数内修改外部的一级指针,不能直接将外部一级指 ...