-2
У меня есть следующие два 2D-массива C-строк. Я пытаюсь скопировать первый на второй, используя функцию strcpy(). Тем не менее, я продолжаю получать ошибку времени выполнения.Ошибка проверки времени выполнения # 2 - s для массива 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) вы должны предоставить достаточно места для каждой из строк. Нет строки SINGLE, которая помещается в массив из 3 символов, если вы считаете завершающий нуль. –
Кроме того, строка 'temp' еще короче, чем' word' и не может ничего удерживать. Почему бы вам сначала не попробовать что-то проще, например, использовать C++ 'std :: string' и оставить этот жесткий материал позже? –
Вы используете два ** 1D ** массива «C-строк», BTW. Ваша цель добавить «столбец» (или строку) в реальный 2D-массив или перезаписать первый массив? –