[CODE][/CODE]#include<stdio.h>int main(void){ char *s;
scanf ("%s",&s); printf ("%s",s); getch(); return 0;}
#include<stdio.h>int main(void){ char *s;
s = malloc(sizeof(char)*100); if (s == NULL) printf ("Malloc Error\n"); scanf ("%s",s); printf ("%s",s); free(s); s = NULL; getch(); return 0;}
楼上写的很不错,这个问题好像ppmm飞燕版主说过,其实这样也是不对的:char *string="i am a chinese",和那个意思一样,都是有可能向内存的危险区域写入东西,但是老谭的书是这样写的,大家学习时要注意啊!!其实老谭的书不错,适合初学者。
s = malloc(sizeof(char)*100); if (s == NULL) printf ("Malloc Error\n"); else { scanf ("%s",s); printf ("%s",s); free(s); s = NULL; } getch(); return 0;}唉,犯了一个严重错误。
要记住不要用一个指针去指向一个数据!!!要么先开辟一个空间!! 或者用数组
指针,没初始化会造成错误!最好给它一个指向!有的编绎器找不到这样的错。但结果不一定正确!
意思是不是就是我指针要指向具体的地址,或者说指向的那个变量要开个地址?