mtrace для программы Фортрана

Вы можете использовать указатели в качестве индикаторов положения и продвигать их по мере необходимости.

#include <stdio.h>
#include <stdlib.h>
#define SIZE 4

char
biggest_ascii(char* str)
{
 char c = 0;
 int i;

 for (i = 0; *str; str++)
    if (*str > c)
        c = *str;
 return c;
}


int
main()
{
 int i;
 char* strArr[SIZE] = {"hello", "and", "good", "morning"};
 char** ppch;// current string
 char res_str[SIZE + 1] = {0};/* resulting string, 
            initilized to 0 to be 0-terminated */
 char* pch;// current char position

 for (i = 0, ppch = strArr, pch = res_str; i < SIZE; i++, ppch++, pch++)
    *pch = biggest_ascii(*ppch);

 printf("%s\n", res_str);   
 return 0;
}
5
задан Davide 11 December 2008 в 19:01
поделиться

3 ответа

У Steve Kargl был ответ, который кратко является, что mtrace не находит утечки, потому что нет никакой утечки, если компилятор соответствует стандарту: См. http://gcc.gnu.org/ml/fortran/2008-11/msg00163.html для деталей.

На самом деле я не крупный эксперт по Фортрану (я - главным образом парень C/C ++/java), и я также использовал другой компилятор, который ДЕЙСТВИТЕЛЬНО просачивается в таком условии (я не упоминал что сохранить вопрос легче). Таким образом я по ошибке думал, что утечка была там также с gfortran, который не имеет место (я сверился с вершиной),

1
ответ дан 15 December 2019 в 01:14
поделиться

Я не эксперт по mtrace, таким образом, я не могу помочь с этим. Я предложил бы, чтобы Вы попробовали valgrind инструмент для нахождения утечек памяти при использовании поддерживаемой системы. Используя valgrind для нахождения утечек памяти так же просто как вызов valgrind --leak-check=full ./a.out.

1
ответ дан 15 December 2019 в 01:14
поделиться

Valgrind является Linux только. Для продукт окон смотрят на Forcheck. http://www.forcheck.nl/features.htm

1
ответ дан 15 December 2019 в 01:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: