arracheri.com

配列上記小数部分

文字列年取得

どのようにしゅうせいすればうまく実行できるでしょうか?かんきょうはOS:WindowsXP SP3CPU:Intel(R) Core(TM)2 Duo E4500 @2.20GHzRAM:2048MBです。へいれつプログラミングのエラー6400×6400のぎょうれつのベクトルせきをへいれつ計算によってもとめ、そのじかんを計るプログラムです。#include <stdio.h>#include <stdlib.h>#include <sys/time.h>#include <pthread.h>#define MATRIX 6400#define THREAD 2#define COUNT 30#define SPLIT 100int INDEX = 0;double a[MATRIX * MATRIX], b[MATRIX], x[MATRIX];pthread_mutex_t m1;double gettimeofday_sec(){ struct timeval tv; gettimeofday(&tv, NULL); return tv.tv_sec + (double)tv.tv_usec*1e-6;}void thread_func(void *arg){ int i, j, tmp; while(INDEX < MATRIX) { pthread_mutex_lock(&m1); tmp = INDEX; INDEX += SPLIT; pthread_mutex_unlock(&m1); for(i = tmp; i < tmp + SPLIT; i++) { for(j = 0; j < MATRIX; j++) { b[i] += a[i * MATRIX + j] * x[j]; } } }}int main(){ int i, j; double timeA, timeB; pthread_t handle[THREAD]; pthread_mutex_init(&m1, NULL); for(i = 0; i < MATRIX * MATRIX; i++) a[i] = rand() % 10; for(i = 0; i < MATRIX; i++) x[i] = rand() % 10; timeA = gettimeofday_sec(); //けいそくかいし for(i = 0; i < COUNT; i++) { for(j = 0; j < THREAD; i++) pthread_create(&handle[i], NULL, (void *)thread_func, NULL); for(j = 0; j < THREAD; i++) pthread_join(handle[i], NULL); INDEX = 0; } timeB = gettimeofday_sec(); //けいそく終了 printf("けいさん時間:%d¥n", timeB - timeA); return 0;}cygwinでコンパイル、実行するとException: STATUS_ACCESS_VIOLATION at eip=00401276eax=000018D0 ebx=000018FF ecx=00000003 edx=0022CE64 esi=611021A0 edi=004015E8ebp=0022CCE8 esp=0022CC90 program=C:¥cygwin¥home¥管理者¥a.exe, pid 2020, thread maincs=001B ds=0023 es=0023 fs=003B gs=0000 ss=0023Stack trace:Frame Function Args0022CCE8 00401276 (00000001, 6116B690, 13F40090, 0022CC70)0022CD98 610060D8 (00000000, 0022CDD0, 61005450, 0022CDD0)61005450 61004416 (0000009C, A02404C7, E8611021, FFFFFF48) 7 [main] a 2020 _cygtls::handle_exceptions: Error while dumping state (probably corrupted stack)というないようのstackdumpファイルがせいせいされてじっこうできません。よろしくおねがいします。

strcpy呼び出す

プログラムないでじしんを呼び出すためにchar path[MAX_PATH];char str[MAX_PATH];GetModuleFileName(NULL, path, MAX_PATH);strcpy(str, "¥"");strcat(str, path);strcat(str, "¥"");system(str);strcat(str, " ¥"コマンドライン引数¥"");system(str);と書いたのですが、下だけうまくいきません。ハノイのとうのプログラムの作り方学校でハノイの塔をくむことになったのですが、ぐたいてきなプログラムがわかりません。systemかんすうがうまくいかないBCCでコマンドラインひきすうを持ったDOSのプログラムをつくっています。おしえてください。どこをかいぜんすればうまくいくようになるでしょうか?分かる方がいらっしゃいましたら回答おねがいします。