長年のリスナー、初めての発信者。
この問題がすでに対処されている場合は申し訳ありませんが (広範囲にカバーされていると思います)、ポインターやその他の一見関連するトピックに関する多くの質問を検索しましたが、まだ問題を解決できません。
現在、クラス プロジェクト用の文字列ライブラリを作成していますが、これを試したときにセグメンテーション違反エラーが発生した場合:
#include "str2107.h"
#include <stdio.h>
void lstrip(char *s) {
char *p, *q;
p = q = s;
while (*p == ' ' && *p != '\0') {
*p++;
}
while (*p != '\0') {
*q = *p; //this is where the actual segmentation fault occurs.
p++;
q++;
}
*q = '\0';
}
私の主なプログラムは次のようになります。
#include <stdio.h>
#include <stdlib.h>
#include "str2107.h"
int main(int argc, char** argv) {
char *z1 = " weeee";
printf("lstrip function\n");
printf("%s\n",z1);
lstrip(z1);
printf("%s\n",z1);
return 0;
}