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 @_@!
Nhờ giải thích đoạn code ngôn 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