An application can call WSAStartup more than once if it needs to obtain the WSADATA structure information more than once. On each such call, the application can specify any version number supported by the Winsock DLL.
WSACleanup
потом вызвать столько же раз, сколько вызывался WSAStartup
John Connor: Does it hurt when you get shot?
T-800: I sense injuries. The data could be called "pain".
real
. И так как это указатель, надо использовать стрелочный оператор для доступа к полю.struct Vector {
void *x;
void *y;
};
struct Complex {
int real;
int imagine;
};
int main() {
struct Vector v;
struct Complex c1;
v.x = &c1;
((struct Complex*) v.x)->real = 42;
return 0;
}
int*a;
int* a;
int *a;
int * a;
int * a, * b, c, * d, e; // a, b и d - указатели, c и e - числа
int *a, *b; // нормально
int* a, b; // Ошибка: b кажется указателем, но на самом деле - число.
std::string
, но судя по заголовку и тексту разговор о C. Если всё же C и вам не хватает тех функций работы со строками, которые перечислены в заголовочном файле string.h, то можно посмотреть на GLib например. pstr2
не инициализирован ничем, а потому указывает на произвольную область памяти. В подавляющем большинстве случаев попытка записать что-либо куда попало приведёт к segmentation fault. Исправить можно инициализировав его указателем на область в куче:char* pstr2 = malloc(13);
cpyp(pstr2, pstr1);
free(pstr2);