С3863: Тип массива char[64] является неоднозначным

135
03 апреля 2019, 12:40
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
    char text[64];
    text = argv[1];
    cout << text << endl;
    return 0;
}

Примитивная программа, при компилировании которой выходит две ошибки:

E0137: Выражение должно быть допустимым для изменения левосторонним значением C3863: Тип массива char[64] является неоднозначным

Answer 1

Лучше уж так:

char * text;
text = argv[1];
cout << text << endl;

Зачем вам копировать куда-то строку?

Чтобы копировать, нужно убедиться, что выделено достаточное количество памяти, использовать strcpy или strcpy_s...

Проще - раз у вас С++ - использовать string:

string text;
text = argv[1];
cout << text << endl;

P.S. И, кстати, ошибка выглядит не так, как написали вы - C3863: Тип массива char[64] является неоднозначным, а C3863: тип массива "char [64]" является неназначаемым. Согласитесь, неназначаемый и неоднозначный - несколько разные вещи :)

READ ALSO
Создание самостоятельного файла в Clion

Создание самостоятельного файла в Clion

Пытаюсь создать exe файл через ClionНо при запуске exe файла, выдает ошибку о нехватке dll файла

137
Свет в 2d играх

Свет в 2d играх

Балуюсь созданием своего движка и игр под него и встал такой вопрос: как правильно сделать осещение? Методом умозаключений, проб и ошибок,...

141
Как найти кратчайшый путь от заданой вершины ко всем другим?

Как найти кратчайшый путь от заданой вершины ко всем другим?

Дано n точек, и координату вершины с какой начинаем, найти кратчайший путь, для обхода всех точек от заданой, и также вернутся назад к нейТак...

170
Анимация кнопки с помощью Timeline

Анимация кнопки с помощью Timeline

Здесь я нашел способ, с помощью которого участник сообщества анимировал геометрическую фигуруВ моем случае требуется анимировать кнопку

180