C++ конкатенация строк strcat - crash программы [требует правки]

519
15 февраля 2017, 23:01

Почему данный код вызывает падение программы (отличается только наличием %s символа)

char test1[2048]="";
strcat(test1,"Какой-то то текст %s\n");

данный код ошибок не вызывает

сhar test1[2048]="";
strcat(test1,"Какой-то то текст \n");

компилятор - mingw64

Answer 1

Включив режим телепатии и ясновидения :), думаю, что в программе на самом деле этим дело не заканчивается, и дальше идет что-то вроде

char test1[2048]="";
strcat(test1,"Какой-то то текст %s\n");
printf(test1);

И вот тут оно и сыпется, пытаясь обратиться к какой-то случайной памяти из-за наличия %s, для которого не передан аргумент.
Если хотите посмотреть, что в строке test1 - выводите ее или с помощью puts(), или printf("%s\n",test1);.

READ ALSO
char* to LPWSTR

char* to LPWSTR

Прошу помочь в приведении типов

445
Анализ кадра с камеры на предмет перевёрнутого изображения

Анализ кадра с камеры на предмет перевёрнутого изображения

Есть клиенты на C++, которые транслируют кадры с веб-камер на HTTP-серверНекоторые камеры отдают перевёрнутые кадры, и нужно программно анализировать...

412
Преобразование типов в С++

Преобразование типов в С++

Определение типов:

388
Зачем нужен тип long когда есть int?

Зачем нужен тип long когда есть int?

В С есть тип longСогласно: Wiki c-types он занимет в памяти 4 байта, да и диапазон значений у него такой же как и у int

310