0

stringByReplaceingOccurrencesOfString でランダムな malloc クラッシュが発生しています。長い文字列でクラッシュすることに気付きましたが、その理由がわかりません。何が問題なのですか?

エラー:

CashTrader(53448,0xb0103000) malloc: *** error for object 0x5c5eca0: incorrect checksum for freed object - object was probably modified after being freed.

暗号化パラメータを入力

raStwjnw9uiOEHzF00UazOUp879zUuLwJ6J300BH2DMH29Pww/4mOR3oHXv4F/CL

サンプルコード:

-(NSURL *)createReqUrl:(NSString *)hostString secure:(BOOL)usessl urlRoot:(NSString*)urlRoot encryptedParam:(NSString *)encryptedparams{
    NSString *encryptString;
    encryptString = nil;



    encryptString = [encryptedparams stringByReplacingOccurrencesOfString:@"+" withString:@"%%2b"];
    encryptString = [encryptString  stringByReplacingOccurrencesOfString:@"/" withString:@"%%2f"];
    encryptString = [encryptString stringByReplacingOccurrencesOfString:@"=" withString:@"%%3d"];
    encryptString = [encryptString stringByReplacingOccurrencesOfString:@"@" withString:@"%%40"];

    NSString *answer = [[NSString alloc] initWithString:urlRoot];
    answer = [[answer stringByAppendingString:encryptString] stringByReplacingOccurrencesOfString:@"%%" withString:@"%"];

    NSString *scheme = nil;
    if (usessl)
        scheme = @"https://";
    else
        scheme = @"http://";

    return [[NSURL alloc] initWithString:[[scheme stringByAppendingString:hostString] stringByAppendingString:answer]];;
}
4

1 に答える 1

1

あなたのencryptStringはNSMutableStringであるべきだと思います。

于 2011-02-15T11:43:01.210 に答える