Skip to content

Instantly share code, notes, and snippets.

@KeitetsuWorks
Last active July 11, 2019 16:20
Show Gist options
  • Select an option

  • Save KeitetsuWorks/556ee2b9ea5755a756ed5e6d342d353c to your computer and use it in GitHub Desktop.

Select an option

Save KeitetsuWorks/556ee2b9ea5755a756ed5e6d342d353c to your computer and use it in GitHub Desktop.
void型で配列の先頭アドレスを受け取り,その配列に波形データを格納する関数
/**
* @file q11210332221.c
* @brief サンプルプログラム
* @author Keitetsu
* @date 2019/07/12
* @copyright Copyright (c) 2019 Keitetsu
* @par License
* This software is released under the MIT License.
*/
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define N_DATA (720) /**< Number of data */
size_t set_wave_data(void *array, size_t array_size);
int main(int argc, char *argv[])
{
double *array;
size_t array_size;
size_t ret_val;
FILE *fp;
size_t t;
array_size = sizeof(double) * N_DATA;
array = (double *)malloc(array_size);
if (array == NULL) {
fprintf(stderr, "[ERROR] Failed to allocate memory.\n");
return 1;
}
ret_val = set_wave_data(array, array_size);
fp = fopen("wave_data.csv", "w");
if (fp == NULL) {
fprintf(stderr, "[ERROR] Failed to open the file.\n");
free(array);
return 2;
}
for (t = 0; t < ret_val; t++) {
fprintf(fp, "%zu, %lf\n", t, array[t]);
}
fclose(fp);
free(array);
return 0;
}
size_t set_wave_data(void *array, size_t array_size)
{
size_t n_data;
size_t t;
n_data = array_size / sizeof(double);
for (t = 0; t < n_data; t++) {
((double *)array)[t] = sin(t * M_PI / 180.0);
}
return t;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment