Автор: exp (24.12.2008 в 16:42)
strcpy() и взаправду удобнее :)
насчёт [] или не [] , чем докажите?)
тут был аргумен в пользу []
, т.к. некоторые компиляторы могут ругаться если не [], а str = "..." у меня только работает если *str="..." :)
str[] ="" однозначно удобнее ;) её sizeof'ом хоть померить можно всё остальное похоже просто указатели
#include <iostream>
#include <malloc.h>
#include <conio.h>
using std::cout;
int main()
{
char * str = new char[200];
char * str4 = ( char * ) calloc( 200, sizeof( char ) );
strcpy( str, "hello" );
strcpy( str4, "hello" );
cout << sizeof str << " " << sizeof *str << " " << sizeof &str
<< " == str\n" << sizeof str4 << " " << sizeof *str4 << " " << sizeof &str4 << " == str4\n";
char * str2 = "helloworld";
cout << sizeof str2 << " " << sizeof *str2 << " " << sizeof &str2 << " == str2\n";
char str3[] = "helloworld";
cout << sizeof str3 << " " << sizeof *str3 << " " << sizeof &str3 << " == str3\n\n"
<< str2 << " " << str3 << "\n" << str4 << "== str4\n" << str << "== str\n\n";
free( str4 );
cout << str4 << " == str4\n";
delete str4;
cout << str4 << "== str4\n";
delete[] str;
cout < < str << "== str\n";
delete str;
cout << str << "== str\n";
getch();
return 0;
} |
а delete[] str; и delete str; очень похожи на одно и то-же
, даже одно и тоже после них извлекается из указателя