在程序中怎么对 char *p[4]赋值
在程序中如何对 char *p[4]赋值?
程序中间变量有字符串 "abc","123","def","456",我之前是定义了一个二维数组来放的,感觉有点浪费。然后我想把他们分别放在一个数组指针里面,就定义了一个*p[4],但在程序中对*p[4]赋值都不行,请问该如何实现这种功能?
------解决思路----------------------
小朋友,傻了吧?
指针是一个完整类型的对象,但它未必指向一个对象。为了使它指向一个对象,你可以选择的方法之一是malloc
------解决思路----------------------
给数组中每个元素都new你所需要的空间
------解决思路----------------------
char *p[4]只是一个指针数组,没有存放数据的空间,把字符串的地址放在里面可以,要想修改数据是不可以的,因为字符串是常量
程序中间变量有字符串 "abc","123","def","456",我之前是定义了一个二维数组来放的,感觉有点浪费。然后我想把他们分别放在一个数组指针里面,就定义了一个*p[4],但在程序中对*p[4]赋值都不行,请问该如何实现这种功能?
------解决思路----------------------
小朋友,傻了吧?
指针是一个完整类型的对象,但它未必指向一个对象。为了使它指向一个对象,你可以选择的方法之一是malloc
p [0] = malloc (num + 1);
strncpy (p[i], str, num);
------解决思路----------------------
给数组中每个元素都new你所需要的空间
------解决思路----------------------
char *p[4]只是一个指针数组,没有存放数据的空间,把字符串的地址放在里面可以,要想修改数据是不可以的,因为字符串是常量