C语言:关于指针内存分配方面的一个程序,有什么问题 啊,求高手解答!谢谢了!!
#include<stdio.h>#include<stdlib.h>
#include<string.h>
void getmemory(char *p);
int main()
{
char *s;
getmemory(s);
strcpy(s,"abcde");
printf("%s",s);
system("pause");
return 0;
}
void getmemory(char *p)
{
p=(char *)malloc(100);
}
为什么程序编译没错,但是运行时说“改程序引用的内存0x000000002不能为written”???
而如果去掉下面的getmemory函数,直接将s=(char *)malloc(100);这条语句加到char *s;后面,程序则运行正常!!什么情况啊,为什么会这样??求高手解答啊!谢谢大家了!