标签: corruption

堆栈损坏,不知道是什么原因造成的

因此,为了有一点事可做,我致力于用 C++ 实现 AES 算法。它编译和链接得很好。但当我运行它时,VS2015 报告变量“temp”周围的堆栈已损坏。它准确地向我展示了它发生的位置,但我在该代码中没有看到任何奇怪的东西:

void rotWord(Word &it)
{
    Word temp;

    for (int i = 0; i < 4; i++)
        temp[(i - 1) % 4] = it[i];
    for (int i = 0; i < 4; i++)
        it[i] = temp[i];
}
Run Code Online (Sandbox Code Playgroud)

顺便说一句,Word被声明为typedef Byte Word[4],其中Byte是一个类。知道是什么导致了这里的堆栈损坏吗?如果需要,我可以发布完整的源代码。

c++ corruption

1
推荐指数
1
解决办法
66
查看次数

realloc和自由原因"双重自由或腐败"

忍受我.我在8年内没有用c编码,我完全不知道为什么我的字符串操作不起作用.我正在写一个永远循环的程序.在循环中,我初始化两个char指针,每个指针都传递给一个向char指针(数组)添加文本的函数.函数完成后,我打印char指针并释放两个char指针.但是,程序在7次迭代后死亡,并显示以下错误消息

*glibc检测到* ./test:双重免费或损坏(fasttop):0x0804a168***

#include sys/types.h
#include sys/stat.h
#include fcntl.h
#include string.h
#include stdio.h
#include stdlib.h
#include errno.h
#include time.h

char *SEPERATOR = "|";

void getEvent (char* results);
void getTimeStamp(char* timeStamp, int timeStampSize);
void stringAppend(char* str1, char* str2);

int main (int argc, char *argv[])
{
  int i = 0; 
  while(1)
  { 
    i++;
    printf("%i", i);    

    char* events= realloc(NULL, 1); 
    events[0] = '\0';
    getEvent(events);

    char* timestamp= realloc(NULL, 20);
    timestamp[0] = '\0';
    getTimeStamp(timestamp, 20);

    printf("%s", events);
    printf("timestamp: %s\n", timestamp);

    free(events);
    free(timestamp);
  } 
}

void …
Run Code Online (Sandbox Code Playgroud)

c free corruption realloc segmentation-fault

0
推荐指数
1
解决办法
3695
查看次数

如何解决malloc()破坏指针的情况?

这是我刚才写的函数的简化版本:

int foobar(char * foo) {
  puts(type);
  struct node * ptr = (struct node *) malloc (sizeof(struct node));
  puts(type);
  memset(ptr, 0, sizeof(ptr));
  ptr=head;
  return head->id;
}
Run Code Online (Sandbox Code Playgroud)

这里node只是一个在链表中声明为节点的结构,它包含char *一个指向下一个节点的指针.但是,我意识到malloc()这里正在腐蚀我的输入char * foo.

为什么会malloc()破坏我的输入字符指针?另外,我怎么能在这里解决这个问题?现在我只是将该指针的内容复制到本地数组,但这太过于hacky,即使是我的口味(这不是最好的).

感谢您的任何投入!

编辑:嗯,这是更真实的代码:

void foobar(char * type) {
  puts(type); <-- here it's a long string about 30 char
  struct node * ptr = (struct node *) malloc (sizeof(struct node));
  puts(type); <- chopped of, 10 left with some random thing at …
Run Code Online (Sandbox Code Playgroud)

c memory malloc pointers corruption

0
推荐指数
2
解决办法
297
查看次数

为什么这个插页会破坏我的桌子?

运行之后,我无法选择或删除表格.

我也没有得到回滚或错误

mytable:

cmid pk in not null
cmcid int null
cmctitle nvarchar(4000)
Run Code Online (Sandbox Code Playgroud)

查询:

begin transaction
INSERT INTO [mydatabasename].[dbo].[mytable]
           (cmcid,cmctitle)
         values(396,'*ADVANCED 2-D ART – Painting  &amp; Drawing'),
(397,'Advanced 3D Art'),
(398,'AP Studio Art')
(399,'Digital Art'),
(400,'Intro to Visual Art'),
(401,'Bible 9 - Scripture'),
(402,'Bible 10 - God  &amp; Christ'),
(403,'Bible 11 -Doctrine and World Religions'),
(404,'Bible 12 - Worldviews'),
(405,'Accounting'),
(406,'AP Macroeconomics'),
(407,'AP Microeconomics'),
(408,'Personal Finance'),
(409,'Introduction to Life Calling'),
(410,'*ACADEMIC SKILLS'),
(411,'*BASIC SKILLS TRAINING – Resource'),
(412,'Directed Studies'), …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server insert corruption insert-into

0
推荐指数
1
解决办法
134
查看次数

奇怪的malloc:内存损坏

我正在编写一个"简单"代码来进行FFT.主要问题发生在DLpart部分:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
#include <complex>
#include <algorithm>
#define SWAP(a,b) tempr=(a);(a) = (b); (b) = tempr
//although maybe i should make my own swap function rather than a define swap

using namespace std;
vector<double> bitReversal(vector<double> data, int nn,int* j);
vector<double> Xcreator(double xSteps);
vector< double > DLpart(vector<double> data,int nn,int j);
void arrayGuarder (vector<double>totals, string fileName,double xSteps);
vector<double> cosineCrafter(double xSteps,double numWaves);


 main(int argc, char **argv){
vector<double> input;
int j = 1; …
Run Code Online (Sandbox Code Playgroud)

c++ malloc fft corruption

-1
推荐指数
1
解决办法
2445
查看次数