1

以下は私のコードです

#include <stdio.h>
#include <string.h>
#include <iostream>

int main()
{
    std::string data;

    data = "hello world";

    char string[] = new char [data.length()+1];;
strcpy(string, data.c_str());


}

エラーが出ました..

file.cpp: In function ‘int main()’:
file.cpp:14:46: error: initializer fails to determine size of ‘string’

文字列データの内容をchar string[]にコピーしたいのですがどうすればいいですか?

助けてくれてありがとう。

4

5 に答える 5

6

次のように変更します。

char* string = new char[data.size()+1];
于 2013-07-28T16:29:58.667 に答える
2

char *stringではなく、使用してくださいchar string[]

char string[]配列を定義することを意味し、配列のサイズはコンパイル時に初期化子から評価する必要があります。

于 2013-07-28T16:30:12.033 に答える
1

コンパイルするには、 のchar*代わりにを使用する必要がありchar[]ます。char[]この場合、 は一定のサイズを必要としますdataが、 はコンパイル時の定数ではないため、サイズを決定できません。

于 2013-07-28T16:30:09.170 に答える