Beim Versuch, memset
ein Array von Zeichen, die statisch zugewiesen wurde, aber nicht für ein Array der gleichen Länge, die mit malloc
zugewiesen wurde, bekomme ich einen segfault.C - memset segfault für statisch zugewiesenes char-Array
Variablendefinitionen:
//static
char inBuff[IN_BUFF_LEN];
//dynamic
char * inBuffD;
Funktionsaufruf:
//static, cast used because char** != char (*) [n]
serverInit(portNum, (char**) &inBuff, &serv_addr, &sockfd)
//dynamic
serverInit(portNum, &inBuffD, &serv_addr, &sockfd)
Verwendung in der Funktion:
memset(*inBuffAdr, 0, IN_BUFF_LEN);
Ich vermute, dass mein Problem in der Differenz der Funktionsaufrufe ist, oder, um genau zu sein, mein unvollständiges Verständnis der Situation "char **! = char (*) [n]". Aber ich habe es schon zu lange angeklopft und kann den Wald nicht mehr von den Bäumen sehen, daher wären alle Hinweise und Ratschläge sehr willkommen.
Was ist 'inBuffAdr' und wie ist es eingestellt? – NPE
es ist nur eine Struktur, die woanders benutzt wird und für die Frage unwichtig ist. aber wenn du wirklich wissen willst, kann ich dir einige details geben – Zodd