gpt4 book ai didi

c++ - 在 C++ 中定义变量和指针(错误 : Segmentation fault (core dumped))

转载 作者:行者123 更新时间:2023-11-28 06:06:37 25 4
gpt4 key购买 nike

<分区>

我正在学习通过指针分配内存地址是 C++。

为了练习,我编写了一个代码来显示正弦信号图以及应用汉宁窗时该信号的输出。输出写入文本文件,然后由 gnuplot 读取以显示图形。这是代码:

#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <iostream>
#include <cmath>
#include <fstream>
using namespace std;

int main()
{
int i;
double y;
int N=20;
double Fs=30000;//sampling frequency
double T=1/Fs;//sample time
double f=5000;//frequency
double *in;
double t[N-1];//time vector
double *signal;

for (int i=0; i< N;i++)
{
t[i]=i*T;
signal[i] =0.7 *sin(2*M_PI*f*t[i]);// generate sine waveform
double multiplier = 0.5 * (1 - cos(2*M_PI*i/(N-1)));//Hanning Window
in[i] = multiplier * signal[i];

}

fstream myfile;

myfile.open("example2.txt",fstream::out);

myfile << "plot '-' using 1:2" << std::endl;
for(i = 0; i < N; ++i)
{
myfile << i << " " << in[i] << std::endl;
}

myfile.close();

return 0;
}

所以我得到的错误是:Segmentation fault (core dumped) 从我读到的内容来看,它与内存分配有关。所以我的问题是:

  1. 我们什么时候应该用指针定义变量并分配内存地址?是当我们有一个输入和输出数组时吗?在这个脚本我可以简单地写两次吗?或者我必须写 *in?

  2. 我怎样才能摆脱这个错误:段错误(核心倾倒)

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com