这不在主要内容:
char message_ecran[NUMBER_OF_STRINGS][STRING_LENGTH+1];
这是我的功能
int main(void)
{
Init();
int i;
char texte7[] = "io";
for (i=0;i<=NUMBER_OF_STRINGS;i++)
{
message_ecran[i] = texte7;
}
}
我想要一个字符串数组message_ecran
,但它不起作用:
incompatible types in assignment
答案 0 :(得分:1)
您现在正在进行的操作是指针的分配。
您不能简单地将一个字符串分配给另一个字符串,您必须strcpy()
才能真正复制数据。
strcpy(message_ecran[i], texte7);
此外,您必须确保在message_ecran[i]
中为您尝试复制的字符串分配了足够的内存。否则,您将损坏数据。
修改强>
您可以查看以下内容:
if(strlen(texte7) < STRING_LENGTH+1)
或者你可以简单地使用以下功能:
char * strncpy ( char * destination, const char * source, size_t num );
strncpy(message_ecran[i], texte7, STRING_LENGTH);
答案 1 :(得分:1)
您必须使用strcpy复制字符串,分配将无法正常工作。 取代
message_ecran[i] = texte7;
与
strcpy(message_ecran[i], texte7);
答案 2 :(得分:1)
strcpy()
,已在您的计划中实施。
#include <string.h>
#include <stdio.h>
#define NUMBER_OF_STRINGS 3
#define STRING_LENGTH 80
char message_ecran[NUMBER_OF_STRINGS][STRING_LENGTH+1];
int main(void)
{
int i;
char texte7[] = "io";
for (i=0;i<=NUMBER_OF_STRINGS;i++)
{
strcpy(message_ecran[i],texte7);
puts(message_ecran[i]);
}
}
答案 3 :(得分:0)
使用strcpy(destination,source)并尝试