C语言的字符指针必须分配空间或者指向某个地址否则不能使用

yzr8963818  |  分类:C/C++  |  浏览1134次
C语言的:
char  *p=null;
char *str="abc";
for(int i=0;i<3;++i)
{
p[i]=str[i];
}

为什么不能这样p[i]=str[i]赋值呢?
2012-05-13 23:46 提问者采纳
p是空指针,一个没有指向的指针(没有分配空间)如何可以赋值呢?
 
     
 
     
 
     
 
     
 
     
 
     
    
      
      
      
      

字符指针必须初始化

  (2011-03-15 20:58:20)
转载
标签: 

it

 

char *str;

scanf("%s", str) ;       //错误

 

char str[10];

scanf("%s", str) ;      //编译通过

因为字符指针可能指向其他程序占用的内存空间。

或则这样写 char *str = malloc(10) ;

 

你可能感兴趣的:(C语言的字符指针必须分配空间或者指向某个地址否则不能使用)