0

これはメインの外にあります:

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
4

4 に答える 4

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);
于 2013-03-11T08:20:14.267 に答える
1

文字列のコピーにはstrcpyを使用する必要があり、割り当ては機能しません。交換

message_ecran[i] = texte7;

strcpy(message_ecran[i], texte7);
于 2013-03-11T08:20:19.213 に答える
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]);
    }
}
于 2013-03-11T09:07:46.580 に答える
0

strcpy(destination、source)を使用して試してください

于 2013-03-11T08:22:42.153 に答える