int main(){
char inputType[5] = "hello you"; //a string
char *word[5]; //a string that will contain 4 character + the null
word = get_word(inputType);
return 0;
}
char *get_word(char inputType[]){ //inputType is a string
char *array[2]; //an array that will store ["hello", "you"]
// got correct code to make it ["hello", "you"]
return array[1] //want to return "you"
}
我收到此错误消息:
Error: word = get_word (inputType) assingment to expression with array Type------------------------------
问题:
*word[5]
vs inputType[5]
答案 0 :(得分:2)
这是错误的
char inputType[5] = "hello you";
hello you
长度为9个字符,您还需要空终止符,因此您需要...
char inputType[10] = "hello you";
这是错误的,因为评论错误
char *word[5]; //a string that will contain 4 character + the null
char *word[5]
不是C字符串,它是一个指向尚未分配的C字符串的5个指针数组。
答案 1 :(得分:1)
是的,它声明了一个大小为5的字符数组(包括NUL字符),您存储的字符数超过5个。
第一个是char*
和第二个数组char
的数组。
是char * word [5]不是你想的......除非你分配内存,它只能保存存储字符的内存位置地址。
char * arr [5]
|
---------------------------------- ~~
| | | |
| char* | | |
---------------------------------- ~~
arr[0] arr[1] arr[2]
你基本上是在初始化char数组。这样做
char inputType[]= "Hello You";
由于此行,基本上会显示错误消息
word = get_word(inputType);
那你在做什么?您正在将char*
分配给应该包含char*
的数组变量 - s
这将是word[0]=get_word()....