LINUX.ORG.RU

История изменений

Исправление LongLiveUbuntu, (текущая версия) :

Ну вот тебе один и тот жен код на С и С++. Пример искусственный, но все же.

char* str1 = "Hello";
char* str2 = (char*)malloc(32*1000);
memset(str2, 1, 32*1000);
strcat(str1, str2);
int i = strlen(sr1);
free(str2);

Упадет с сегфолтом.

std::string str1 = "Hello";
char* str2 = new char[32*1000];
memset(str2, 1, 32*1000);
str1 += str2;
int i = str1.size();
delete[] str2;
Работает.

Исходная версия LongLiveUbuntu, :

Ну вот тебе один и тот жен код на С и С++. Пример искусственный, но все же.

char* str1 = "Hello";
char* str2 = (char*)malloc(32*1000);
memset(str2, 1, 32*1000);
strcat(str1, str2);
free(str2);

Упадет с сегфолтом.

std::string str1 = "Hello";
char* str2 = new char[32*1000];
memset(str2, 1, 32*1000);
str1 += str2;
delete[] str2;
Работает.