Профилировщик для Visual Studio 2008, C++?

Во-первых, используйте setbuf(stdout, NULL);, если вы хотите, чтобы ваши отпечатки сбрасывались до того, как ваша программа неожиданно завершит работу.

Во-вторых, как уже упоминали другие, вы получаете доступ к элементу указателя NULL в while (value >= (curptr->data)), который вызывает сбой.

В-третьих, ваша insert и print логика также неверна.

#include <stdio.h>
#include <stdlib.h>

struct record{
    int data;
    struct record *nextptr;
};

void insert (struct record **ptr,int value);
void printList(struct record *ptr);

int main() {
    setbuf(stdout, NULL);
    struct record *headptr = NULL;
    for (int i = 0; i < 4; ++i) {
        int data;
        printf("Enter your value");
        scanf("%d", &data);
        insert(&headptr, data);
    }
    printList(headptr);


    return 0;
}
void insert (struct record **head,int value){
    printf("WE ARE IN THE INSERT FUNCTION");
    struct record *newptr = (struct record *) malloc(sizeof(struct record));
    newptr->data=value;
    newptr->nextptr=NULL;
    struct record *curptr=*head;
    struct record *prevcurptr=NULL;

    while(curptr!=NULL && value >= (curptr->data)){
        prevcurptr=curptr;
        curptr=curptr->nextptr;
    }
    if (curptr==NULL){
        if (prevcurptr==NULL) {         
            *head=newptr;
        } else {
            newptr->nextptr=prevcurptr->nextptr;
            prevcurptr->nextptr=newptr;
        }
    }
    else{
        newptr->nextptr=curptr;
        if (prevcurptr==NULL)       
            *head=newptr;
        else
            prevcurptr->nextptr=newptr;
    }

}
void printList(struct record *ptr){
    while(ptr != NULL){
        printf("\n %d", ptr->data);
        ptr=ptr->nextptr;
    }
}
16
задан Peter Mortensen 14 October 2009 в 19:06
поделиться

6 ответов

На моем рабочем месте мы используем AQTime. Это не свободно (600$ или 30-дневная пробная версия), но это действительно творит чудеса. Мне нравится он, потому что это может обработать оба собственных компонента (мы делаем C++), и управляемый код. Это работает в автономном режиме, интегрируется с Visual Studio и также работает с IDE Borland (для тех Разработчик C++ и поклонники Delphi там).

Но я буду наблюдать этот вопрос видеть, существуют ли какие-либо бесплатные инструменты, которые я могу использовать дома =)

8
ответ дан 30 November 2019 в 22:50
поделиться

Другое голосование за AQTime. Мы были действительно довольны им. Но конечно это не свободно, как Вы попросили...

Я попробовал CodeAnalyst однажды, но насколько я видел, что он делал опрос, а не инструментарий, и следовательно дал довольно сырые результаты. Не нашли свободных профилировщиков для Windows, который я любил лучше, чем это.

1
ответ дан 30 November 2019 в 22:50
поделиться

VTune Intel или CodeAnalyst AMD оба свободны, я верю.

0
ответ дан 30 November 2019 в 22:50
поделиться

Бесплатный профилировщик для VS 2008: http://unick-soft.ru/Articles.cgi?id=8 Это русская статья, но вы можете воспользоваться переводом google com.

1
ответ дан 30 November 2019 в 22:50
поделиться

Эта техника бесплатна и хорошо работает в Visual Studio.

1
ответ дан 30 November 2019 в 22:50
поделиться

Microsoft предоставляет автономную версию профилировщика, которую можно использовать из командной строки. http://www.microsoft.com/downloads/details.aspx?familyid=fd02c7d6-5306-41f2-a1be-b7dcb74c9c0b&displaylang=en

3
ответ дан 30 November 2019 в 22:50
поделиться
Другие вопросы по тегам:

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