theMessageMaxLength
は、長さが4より大きい場合でも、私に4
の値を与え続けます。なぜこれが起こっていて、それを修正するのですか?これは、タイプsize_t
であり、私はそれがどこにも宣言されていない、むしろそれは、このようなとして渡されるだけの値である:size_tの長さが正しくありませんか?
place_value(int task, struct PDB *llist, char *theMessage, size_t theMessageMaxLength)
次のように上記のメソッドが呼び出されている:
place_value(task, llist, theMessage, sizeof(theMessage));
私はこれが長さが4に設定されていると仮定していますが、私のメッセージが大きければ大きなものに設定してはいけませんか?私はどのようにしてサイズを増やすことができますか?その後、
、に渡されている関数内でこのように使用:あなたはstrlen()
とsizeof()
が混乱しているように見えます
strncpy(llist->data1, theMessage, theMessageMaxLength);
llist->data1[theMessageMaxLength] = '\0';
ありがとう:) ...それを得ました! – BigBug