掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
StrDispose(P); で無効なポインタ操作の実行エラー (ID:34161)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
string と PChar の違いをチェックするために以下のようにコーディングしたのですがStrDispose(P); で「無効なポインタ操作」という実行エラーが出ます。 しかしコメントのように添え字を使った場合はOKです。これはなぜでしょう? 'string PChar' ここをぐぐったのですがあまりのも例が多すぎて(笑)。しかし、いくつか見た限りでは適切なQ&Aを見つけられませんでした。 function SpcToZen(S: string): string;//2個の半角空白⇒全角空白 var i, L: Integer; //j: Integer P : PChar; begin if S = '' then Exit; L := Length(S); i := 1; //j :=0 P := StrAlloc(L+1); try while i <= L do begin if (S[i] = #$20) and (S[i+1] = #$20) then begin P^ := #$81; Inc(P); //P[j] := #$81; P[j+1] := #$40; P^ := #$40; Inc(i); Inc(P); //Inc(i); Inc(j); end else P^ := S[i]; //P[j] := S[i]; Inc(i); Inc(P); //Inc(i); Inc(j); end; P^ := #0; //P[j] := #0; Result := String(P); finally StrDispose(P); //ここで実行エラー end; end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.