Nhờ giải thích đoạn code ngôn ngữ C++

Thì đó không phải cấp phát, không quan tâm giải phóng cứ code thôi tạo bao nhiêu đối tượng cũng được @_@!

1 Like

C++ muốn ko xài new/delete cũng được. std::vector, std::string có đủ hết mà. Cộng thêm std::unique_ptr/std::shared_ptr nữa thì ko bao giờ phải xài new/delete

mình viết thử dlsk đơn có reverse/sort mà ko cần new/delete nè: http://rextester.com/YTH83636

3 Likes

Thằng JVM tự đi GC (dọn mem) đấy bạn chứ ở đó mà không free.

Còn cái hàm ở post 1 có s1 lúc đó trỏ vào sau vùng nhớ ban đầu. Vậy nó là strcat nhưng rủi ro vẫn có.

3 Likes

Lâu không code một doạn code tử tế @_@!
Mọi người cho ý kiến với.

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#define MAX_SIZE_CACHE 80

int main(int argc, char **argv) {
	const int sizeOfChar = sizeof(char);
	char *tmp = (char *) malloc((MAX_SIZE_CACHE + 1) * sizeOfChar);
	char *string1 = NULL;
	char *string2 = NULL;
	
	printf("Nhap sau thu nhat ");
	scanf("%s", tmp);
	string1 = (char *) malloc((strlen(tmp) + 1) * sizeOfChar);
	strcpy(string1, tmp);
	
	printf("Nhap sau thu hai ");
	scanf("%s", tmp);
	string2 = (char *) malloc((strlen(tmp) + 1) * sizeOfChar);
	strcpy(string2, tmp);
	free(tmp);
	
	char *string3 = (char *) 
		malloc((strlen(string1) + strlen(string2) + 1) * sizeOfChar);
	strcpy(string3, string1);
	strcpy(string3 + strlen(string1), string2);
	printf("Cong sau %s\n", string3);
	
	free(string1);
	free(string2);
	free(string3);
return 0;
}
1 Like

Rất bổ ích.
Cảm ơn vì tất cả. @_@!

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