Страница 2 из 2
Добавлено: 01 окт 2004, 19:47
Dragonfly
Как меня впечатляют эти рассуждения на тему "как интересно"

. На самом деле, фактически только некоторые отладчики будут подчищать память в таких случаях. А в общем то - что может измениться в области памяти вашего приложения за те миллисекунды, пока будет возвращены данные (или даже в случае многозадачной ОС, все равно в область памяти программы никто не лезет, кроме вириев

)
Добавлено: 01 окт 2004, 20:21
Romeo
Dragonfly, здесь обсуждается не вероятность краша программы при тех или иных обстоятельствах, а выявляются правильные и неправильные методы прораммирования. Если вероятность краша существует, только глупый программист пойдёт по этому пути, не правда ли. По всей верятности, господин Dragonfly, вы не являетесь программистом в полном смысле этого слова, если допускаете подобные заявления.
Добавлено: 01 окт 2004, 20:36
Dragonfly
Возможно я неправильно выразился. Естественно я не рекомендую использовать подобные методы. Все что я хотел сказать - это то что это предопределенно некорректный подход и столь длительное обсуждение его нецелесообразно, IMHO. Я уверен, что это всем и так известно, но по-моему классически бедет так:
#include <stdio.h>
#include <string.h>
#include <unistd.h>
char* some_function(char *pStr) { strcpy(pStr, "hello world!"); return str; }
int main()
{
char str[1024]; some_function(&str);
// usleep((long)1E3) /* подождать пока локальная переменная удалится

))
printf("%s\n", str);
return 0;
}
Т.е. мне ничего другого и в голову не пришло бы и может быть это как раз и плохо.
Еще раз извините.
Добавлено: 04 окт 2004, 11:40
Absurd
char* some_function(char *pStr) { strcpy(pStr, "hello world!"); return str; }
Ха-ха-ха. А если буффер неподходящего размера?
Добавлено: 04 окт 2004, 11:45
Dragonfly
Ню-ню

А енто уже есмь проблема главной функции (ибо не ООП). А если серьезно, то придется использовать string или CString.