我跟朋友争吵了.他说我可以从函数返回指向本地数据的指针.这不是我所学到的,但我找不到反对他证明我的知识的反驳.
这是一个例子:
char *name() {
    char n[10] = "bodacydo!";
    return n;
}
它用作:
int main() {
    char *n = name();
    printf("%s\n", n);
}
他说这完全没问题,因为在一个程序调用name之后,它会返回一个指向n的指针,然后就会打印它.同时程序中没有其他任何事情发生,因为它是单线程的,执行是串行的.
我找不到反驳的论点.我永远不会写那样的代码,但他很顽固,并说这完全没问题.如果我是他的老板,我会解雇他是一个顽固的白痴,但我找不到反驳的论点.
另一个例子:
int *number() {
    int n = 5;
    return &n;
}
int main() {
    int *a = number();
    int b = 9;
    int c = *a * b;
    printf("%d\n", c);
}
我得到一些好的答案后,我会把这个链接发给他,所以他至少学会了一些东西.