Sử dụng con trỏ bị crash C++

Mình sử dụng một đoạn code C++ để thay đổi đuôi của 1 file mà bị crash lúc được lúc không.
Hình như do cách sử dụng con trỏ sai mong pro giúp đỡ

						FILE *f1=NULL, *f2=NULL;
					
						char* encrypt = (char*)Marshal::StringToHGlobalAnsi(strFile).ToPointer();
						
						f1 = fopen(encrypt, "rb");
						char* encrypted = strcat(encrypt, ".locked");
						
						f2 = fopen(encrypted, "wb");
						char key = '3';
						int c;
						while ((c = fgetc(f1)) != EOF)
							fputc(c^key, f2);
					
						fclose(f1); fclose(f2);

Marshal -> cái này là CLI :smiley: ko phải C++.

uk nhưng nó đâu có ảnh hưởng rì đâu bạn nhở. K biết bị crash có phải là do chưa giải phóng con trỏ k nữa

@ltd anh ơi anh cho em hỏi chút ạ. Khi em sử dụng code xor encryted để mã hóa một file thì được mà đưa vào vòng lặp mã hóa vài file trong thư mục lại không được anh nhỉ. Nó cứ crash. Code như thế này:

private: System::Void mahoa(System::String ^strFile) {
	try {
		FILE *f1, *f2;

		char* encrypt = (char*)Marshal::StringToHGlobalAnsi(strFile).ToPointer();
		char* encrypted = strcat(encrypt, ".locked");
		char key = '3';
		int c;
		f1 = fopen(encrypt, "r");
		f2 = fopen(encrypted, "w");
		while ((c = fgetc(f1)) != EOF)
			fputc(c^key, f2);
		fclose(f1); fclose(f2);

	}
	catch (Exception ^e)
	{
		//Bắt lỗi
		lstDd->Items->Add(e->Message);
	}
}

đọc lại cái hàm strcat nó đòi yêu cầu gì…

Mình đọc thi tài liệu bảo cần đích đủ lớn.
Mình thay như thế này mà vẫn k đc

		char *encrypt = (char *)calloc(1000, sizeof(char));
		encrypt = (char*)Marshal::StringToHGlobalAnsi(strFile).ToPointer();
		char *encrypted = (char *)calloc(1000, sizeof(char));
		encrypted = strcat(encrypt, ".locked");

Chắc không phải do strcat !

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?