簡體   English   中英

錯誤調試斷言失敗

[英]Error Debug Assertion Failed

我代碼:

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

void nhap(int **s, int line, int column)
{
int x;
srand((unsigned int)time(NULL));
for(int i=0; i<line; i++)
    for(int j=0; j<column; j++)
    {
        x=rand()%10+0;
        *(*(s+i)+j)=x;
    }

}

void xuat(int **s, int line, int column)
{
for(int i=0; i<line; i++)
{
    printf("\n");
    for(int j=0; j<column; j++)
        printf("%3d",s[i][j]);
}
}

int main()
{
int line,column;
printf("\nLine: "); scanf("%d",&line);
printf("\nColumn: "); scanf("%d",&column);

int **s=new int*[line];
for(int i=0; i<line; i++)
    s[i]=new int[column];

nhap(s,line,column);
xuat(s,line,column);

getch();
for(int i=0; i<line; i++)
    delete[] (s+i);
delete[] s;
}

錯誤:調試斷言失敗! Exspression:_BLOCK_TYPE_IS_VALID。 有關程序如何導致斷言失敗的信息,請參閱有關斷言的Visual C ++文檔。

delete [] (s+i); 是你的錯誤。 為清楚起見,您應該堅持使用常規數組語法。 *(s+i)東西是等價的,但更難閱讀/理解。 所以我使用delete [] s[i]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM