今天在论坛看见关于指针使用的讨论,原帖:https://bbs.csdn.net/topics/394991693
我整理一下他们所说的几种方法,可能涉及到内存泄漏
case 1:
#include <stdlib.h> #include <stdio.h> int *min(int x, int y) { int *temp = (int*)malloc(sizeof(int)); *temp = x < y ? x : y; return temp; } int main() { int a = 3; int b = 5; int *c = min(a, b); printf("%d ", *c); free(c); system("pause"); return 0; }
case 2:
#include <stdlib.h> #include <stdio.h> int *min(int x, int y) { int *temp = (int*)malloc(sizeof(int)); temp = x < y ? &x : &y; return temp; } int main() { int a = 3; int b = 5; int *c = min(a, b); printf("%d ", *c); system("pause"); return 0; }
case 3:
#include <stdlib.h> #include <stdio.h> int *min(int *x, int *y) { return *x < *y ? x : y; } int main() { int a = 3; int b = 5; int *c = min(&a, &b); printf("%d ", *c); system("pause"); return 0; }