-2
私はC文字列の次の2つの2D配列を持っています。 strcpy()関数を使って最初のものを2番目のものにコピーしようとしています。しかし、私はランタイムエラーを取得し続けます。ランタイムチェック失敗#2 - C文字列の配列
#define _CRT_SECURE_NO_WARNINGS
#include <cstring>
#include <iostream>
using namespace std;
int main() {
char word1[3][3] = { "Hello", "Bonjour", "Ni Hao" };
char word2[3][3] = { "Steve", "Pei", "Frank" };
char temp[] = "";
for (int i = 0; i < 3; i++) {
strcpy(temp, word1[i]);
strcpy(word1[i], word2[i]);
strcpy(word2[i], temp);
}
for (int i = 0; i < 3; i++) {
cout << word2[i] << " ";
}
cout << endl;
}
実際の実行時エラーを指定した場合は、より良いヘルプを得ることができ、b)それぞれの文字列に十分なスペースを提供する必要があります。終端のゼロを考えると、3文字の配列に収まる単一の文字列はありません。 –
また、文字列 'temp'は' word'sよりも短く、何も保持できません。 C++の 'std :: string'を使うなど、もっと簡単に何かを試してみましょう。 –
あなたは2つの** 1D **配列の "C-strings"を使用しています。実際の2D配列に「列」(または行)を追加する、または最初の配列を上書きすることはあなたの目標ですか? –